﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

namespace PK2
{
    public interface IPKPlugin
    {
        /// <summary>
        /// Method that should Initialize our pluggin
        /// </summary>
        void Initialize(IProcrastinationKit pk, Configuration config);

        /// <summary>
        /// Method executed by the provider when a Command is executhed
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void CommandExecuted(PKCommandEventArgs e);

        /// <summary>
        /// Gets the token that represents this Provider
        /// </summary>
        string Token { get; }

        /// <summary>
        /// 
        /// </summary>
        string Description { get; }

        /// <summary>
        /// Gets the command list
        /// </summary>
        PKCommand[] Commands { get; }

        PKCompletionSet[] CompletionSets {get;}

        /// <summary>
        /// Hides the method ToString inherited from object
        /// </summary>
        /// <returns></returns>
        string ToString(); 

    }
}
